package cn.meye11.crm.domain.query;

import cn.meye11.crm.common.Page;
import cn.meye11.crm.common.RegexUtils;
import lombok.*;

import javax.validation.constraints.Pattern;
import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * (Cost)查询类
 *
 * @author makejava
 * @since 2024-01-03 14:41:34
 */
@ToString(callSuper = true)
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class CostQuery extends Page implements Serializable {

    private static final long serialVersionUID = -15978156018937364L;
    
    /*
     * id(可以传入一组id，以逗号分隔)
     */
    @Pattern(regexp = RegexUtils.Type.ONLY_NUMBER_OR_EMPTY, message = "只能为数字以逗号分割")
    private String id;
    /* 成本年月 */
    private String yearmonth;
    // @ApiModelProperty(value = "成本项目 精确查")
    private String name;
    // @ApiModelProperty(value = "成本项目 模糊查")
    private String nameLike;
    // @ApiModelProperty(value = "成本项目 在列表中 逗号分割")
    private String nameIn;
    // @ApiModelProperty(value = "成本项目 不在列表中 逗号分割")
    private String nameNotIn;
    // @ApiModelProperty(value = "成本价 精确查")
    private Double costPrice;
    // @ApiModelProperty(value = "操作人姓名 精确查")
    private String operators;
    // @ApiModelProperty(value = "操作人姓名 模糊查")
    private String operatorsLike;
    // @ApiModelProperty(value = "操作人姓名 在列表中 逗号分割")
    private String operatorsIn;
    // @ApiModelProperty(value = "操作人姓名 不在列表中 逗号分割")
    private String operatorsNotIn;
    // @ApiModelProperty(value = "标签 精确查")
    private String label;
    // @ApiModelProperty(value = "标签 模糊查")
    private String labelLike;
    // @ApiModelProperty(value = "标签 在列表中 逗号分割")
    private String labelIn;
    // @ApiModelProperty(value = "标签 不在列表中 逗号分割")
    private String labelNotIn;
    // @ApiModelProperty(value = "创建人 精确查")
    private String createdBy;
    // @ApiModelProperty(value = "创建人 模糊查")
    private String createdByLike;
    // @ApiModelProperty(value = "创建人 在列表中 逗号分割")
    private String createdByIn;
    // @ApiModelProperty(value = "创建人 不在列表中 逗号分割")
    private String createdByNotIn;
    // @ApiModelProperty(value = "最后修改人 精确查")
    private String modifiedBy;
    // @ApiModelProperty(value = "最后修改人 模糊查")
    private String modifiedByLike;
    // @ApiModelProperty(value = "最后修改人 在列表中 逗号分割")
    private String modifiedByIn;
    // @ApiModelProperty(value = "最后修改人 不在列表中 逗号分割")
    private String modifiedByNotIn;
    /*
     * 开始时间与结束时间
     */
    // @ApiModelProperty(value = "开始时间", notes = "yyyy-MM-dd HH:mm:ss", example = "2020-01-01 00:00:00")
    private LocalDateTime start;
    // @ApiModelProperty(value = "结束时间", notes = "yyyy-MM-dd HH:mm:ss", example = "2020-12-01 00:00:00")
    private LocalDateTime end;
}
